Computing environments such as cloud environments can provide users with various types of services. A cloud environment typically refers to the hardware, networking, storage, applications, services, and other components that can be used by various users. A public cloud, for example, may be used by multiple unrelated users and a private cloud is typically used by a single set of related users (or single entity). A hybrid cloud may refer to a combination of a private cloud and a public cloud.
Cloud environments are often used to provide Infrastructure as a Service (IaaS). Using a cloud environment effectively shields users or entities from the details of the infrastructure. While using a cloud environment, a user or entity may make a request for a certain service. For example, a user may request a virtual machine, storage, an application, or other service available from the cloud environment. A cloud environment can be used to provide big data processing, backup services, virtual machines, applications, storage including big data storage, or the like.
One of the problems with cloud environments relates to the need to provision or deploy services. If the services of the cloud are manually provisioned, it becomes more difficult to adequately meet the needs of users. Further, the services of the cloud cannot be dynamically managed in an efficient manner. When the services of the cloud are accessed in a self-service manner, it becomes more difficult to enforce security and ensure that the services comply with various rules and regulations. Services and methods are needed to securely provision services requested by users or entities.